package com.tjsinfo.tjsoa.mail.bo;

import java.util.Date;
import java.util.List;

import com.tjsinfo.tjsoa.mail.vo.TjsAnnex;
import com.tjsinfo.tjsoa.mail.vo.Tjsmail;
import com.tjsinfo.tjsoa.system.vo.User;

/**
 * 用户发邮件Bo
 * @author wangxiaowei
 *
 */
public interface ITjsmailBo {
	/**
	 * 发送邮件
	 * @param 标题
	 * @param 内容
	 * @param 时间
	 * @param 类型
	 * @param 用户ID
	 * @param 状态
	 * @param 附件数组
	 * @return 
	 */
	public String addSendMail(String title,String value,Date time,Integer type,Integer userid,Integer start,List<TjsAnnex> annexarray,String username,String sendSql);
	/**
	 * 修改邮件类型
	 * @param 邮件ID
	 * @param 类型
	 * @return
	 */
	public boolean updateSendMailType(String mailid,Integer type);
	/**
	 * 修改已发送邮件状态
	 * @param 邮件ID
	 * @param 状态
	 * @return
	 */
	public boolean updateSendMailStart(String mailid,Integer start);
	/**
	 * 修改已发送邮件读写状态
	 * @param 邮件ID
	 * @param 状态
	 * @return
	 */
	public boolean updateSendMailRead(String mailid,Integer read);
	/**
	 * 查询本人的已发送的邮件
	 * @param 用户ID
	 * @return
	 */
	public List<Tjsmail> selectSendMail(Integer userid);
	/**
	 * 向特定的用户发送草稿的邮件
	 * @param 接受的用户ID
	 * @param 邮件实体
	 * @return
	 */
	public boolean sendMailDrafList(Integer userid,Tjsmail tjsmail);
	
	/**
	 * 查询一个已发送邮件
	 * @param id
	 * @return
	 */
	public Tjsmail selectOneId(String id);
	/**
	 * 查询指定用户的已发送的邮件
	 * @param 用户ID
	 * @param 状态ID
	 * @return
	 */
	public List<Tjsmail> selectTjsmail(User user,Integer start);
	/**
	   * 删除发件箱
	   * @param array
	   * @return
	   */
	  public boolean deleteTjsmail(String[] array);
	  /**
	   * 移动发件箱
	   * @param array
	   * @param foldid
	   * @return
	   */
	  public boolean moveTjsmail(String[] array,String foldid);
	  /**
	   * 查询已发邮件
	   * @param id
	   * @return
	   */
	  public List<Tjsmail> selectByID(String id);
	  
	  /**
		 * 查询发送邮件
		 * @param 标题
		 * @param 用户ID
		 * @return
		 */
		public List<Tjsmail> selectByTitle(String title,Integer userid);
}
